home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.Rectangle;
- import java.awt.Toolkit;
- import java.beans.PropertyChangeListener;
- import javax.swing.JComponent;
- import javax.swing.JToolTip;
- import javax.swing.LookAndFeel;
- import javax.swing.SwingUtilities;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.ToolTipUI;
- import javax.swing.text.View;
-
- public class BasicToolTipUI extends ToolTipUI {
- static BasicToolTipUI sharedInstance = new BasicToolTipUI();
- private PropertyChangeListener propertyChangeListener;
-
- private PropertyChangeListener createPropertyChangeListener(JComponent var1) {
- return new PropertyChangeHandler(this);
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return sharedInstance;
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- Dimension var2 = this.getPreferredSize(var1);
- View var3 = (View)var1.getClientProperty("html");
- if (var3 != null) {
- var2.width = (int)((float)var2.width + (var3.getMaximumSpan(0) - var3.getPreferredSpan(0)));
- }
-
- return var2;
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- Dimension var2 = this.getPreferredSize(var1);
- View var3 = (View)var1.getClientProperty("html");
- if (var3 != null) {
- var2.width = (int)((float)var2.width - (var3.getPreferredSpan(0) - var3.getMinimumSpan(0)));
- }
-
- return var2;
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- Font var2 = ((Component)var1).getFont();
- FontMetrics var3 = Toolkit.getDefaultToolkit().getFontMetrics(var2);
- Insets var4 = var1.getInsets();
- Dimension var5 = new Dimension(var4.left + var4.right, var4.top + var4.bottom);
- String var6 = ((JToolTip)var1).getTipText();
- if (var6 != null && !var6.equals("")) {
- View var7 = var1 != null ? (View)var1.getClientProperty("html") : null;
- if (var7 != null) {
- var5.width += (int)var7.getPreferredSpan(0);
- var5.height += (int)var7.getPreferredSpan(1);
- } else {
- var5.width += SwingUtilities.computeStringWidth(var3, var6) + 6;
- var5.height += var3.getHeight() + 4;
- }
- } else {
- var6 = "";
- }
-
- return var5;
- }
-
- private void installComponents(JComponent var1) {
- BasicHTML.updateRenderer(var1, ((JToolTip)var1).getTipText());
- }
-
- protected void installDefaults(JComponent var1) {
- LookAndFeel.installColorsAndFont(var1, "ToolTip.background", "ToolTip.foreground", "ToolTip.font");
- LookAndFeel.installBorder(var1, "ToolTip.border");
- }
-
- protected void installListeners(JComponent var1) {
- this.propertyChangeListener = this.createPropertyChangeListener(var1);
- var1.addPropertyChangeListener(this.propertyChangeListener);
- }
-
- public void installUI(JComponent var1) {
- this.installDefaults(var1);
- this.installComponents(var1);
- this.installListeners(var1);
- }
-
- public void paint(Graphics var1, JComponent var2) {
- Font var3 = ((Component)var2).getFont();
- FontMetrics var4 = Toolkit.getDefaultToolkit().getFontMetrics(var3);
- Dimension var5 = ((Component)var2).getSize();
- var1.setColor(((Component)var2).getBackground());
- var1.fillRect(0, 0, var5.width, var5.height);
- var1.setColor(((Component)var2).getForeground());
- var1.setFont(var3);
- String var6 = ((JToolTip)var2).getTipText();
- if (var6 == null) {
- var6 = "";
- }
-
- View var7 = (View)var2.getClientProperty("html");
- if (var7 != null) {
- Rectangle var8 = ((Component)var2).getBounds();
- Insets var9 = var2.getInsets();
- var8.x += var9.left;
- var8.y += var9.top;
- var8.width -= var9.left + var9.right;
- var8.height -= var9.top + var9.bottom;
- var7.paint(var1, var8);
- } else {
- var1.drawString(var6, 3, 2 + var4.getAscent());
- }
-
- }
-
- private void uninstallComponents(JComponent var1) {
- BasicHTML.updateRenderer(var1, "");
- }
-
- protected void uninstallDefaults(JComponent var1) {
- LookAndFeel.uninstallBorder(var1);
- }
-
- protected void uninstallListeners(JComponent var1) {
- var1.removePropertyChangeListener(this.propertyChangeListener);
- this.propertyChangeListener = null;
- }
-
- public void uninstallUI(JComponent var1) {
- this.uninstallDefaults(var1);
- this.uninstallComponents(var1);
- this.uninstallListeners(var1);
- }
- }
-